function xmlMicoxLoader(url){
    //by Micox: micoxjcg@yahoo.com.br.
    if(window.XMLHttpRequest){
          //alert('ie ' + url);
        var Loader = new XMLHttpRequest();
        Loader.open("POST", url ,false);
        Loader.send();
        return Loader.responseXML;
    }else if(window.ActiveXObject){
          //alert('ff ' + url);
    var Loader = new ActiveXObject("Msxml2.DOMDocument.3.0");
    Loader.async = false;
  
    Loader.load(url);
    
    return Loader;
}
}

function xmlMicoxArvore(xmlNode,identacao){
    //by Micox: micoxjcg@yahoo.com.br
    var arvoreTxt=""; //esta var armazenara o conteudo
    for(var i=0;i<xmlNode.childNodes.length;i++){//percorrendo os filhos do nó
        if(xmlNode.childNodes[i].nodeType == 1){//ignorar espaços em branco
            //pegando o nome do nó
            arvoreTxt = arvoreTxt + identacao + xmlNode.childNodes[i].nodeName + ": "
            if(xmlNode.childNodes[i].childNodes.length==0){
                //se não tiver filhos eu já pego o nodevalue
                arvoreTxt = arvoreTxt + xmlNode.childNodes[i].nodeValue 
                for(var z=0;z<xmlNode.childNodes[i].attributes.length;z++){
                    var atrib = xmlNode.childNodes[i].attributes[z];
                    arvoreTxt = arvoreTxt + " (" + atrib.nodeName + " = " + atrib.nodeValue + ")";
                }
                arvoreTxt = arvoreTxt + "<br />\n";
            }else if(xmlNode.childNodes[i].childNodes.length>0){
            //se tiver filhos eu tenho que pegar o valor pegando o valor do primeiro filho
            arvoreTxt = arvoreTxt + xmlNode.childNodes[i].firstChild.nodeValue;
            for(var z=0;z<xmlNode.childNodes[i].attributes.length;z++){
                var atrib = xmlNode.childNodes[i].attributes[z];
                arvoreTxt = arvoreTxt + " (" + atrib.nodeName + " = " + atrib.nodeValue + ")";
            }
            //recursividade para carregas os filhos dos filhos
            arvoreTxt = arvoreTxt + "<br />\n" + xmlMicoxArvore(xmlNode.childNodes[i],identacao + "> > ");
        }
    }
}
return arvoreTxt;
}

function getResponseParam(classe, method, param) {

    var jsp = "easyajax.jsp?" + new Date().getTime() + "&";
    var strParam = jsp + "className=" + classe + "&opName=" + method + "&" + param;
    return xmlMicoxLoader(strParam);    

}
function getResponse(classe, method) {
    // obetendos os campos do formulário
//    var jsp = "easyajax.jsp";
    var formulario = document.forms[0];
    var campos = formulario.elements;
    var strParam = "";
    for (i = 0; i < campos.length; i++) {
        //alert(campos[i].name + " " + campos[i].value );
        if (campos[i].name != "" && campos[i].name != "op" ) {
            strParam += campos[i].name + "=" + campos[i].value + "&";
        }    
    }
   
    //var xml = xmlMicoxLoader(jsp + url + "?className=exemplo.TesteEasyAjax&opName=add&nome=EU");    

    //var xml = xmlMicoxLoader(strParam);    
    //return xml;
    //alert(strParam);
    return getResponseParam(classe, method, strParam);
}


function clearFields() {
  var formulario = document.forms[0];
    var campos = formulario.elements;
    var strParam = "";
    for (i = 0; i < campos.length; i++) {
        //alert(campos[i].name + " " + campos[i].value );
        if (campos[i].name != "" && campos[i].name != "op" ) {
            campos[i].value="";
        }    
    }
}

/**
* Obtém o valor de um atributo
*/
function getValueField(xmlNode, fieldName) {
    var nodes = xmlNode.getElementsByTagName('field');
    var value = null;
    for (var i=0; i < nodes.length; i++) {
        var atribId = nodes[i].attributes[0];
        var atribType = nodes[i].attributes[1];
        if (atribId.nodeValue == fieldName) {
            //alert(atribId.nodeValue + ' ' + atribType);
            value = nodes[i].childNodes[0].nodeValue;
        }
    }
    if (value == null)
        alert("Campo " + fieldName + " , não encontrado!");
    return value;
}


function setValueForm(fieldForm, value) {
    var f = document.forms[0];
    var field = f.elements[fieldForm];
    if (field == null)
        alert("Campo, "+ fieldForm + ", não encontrado no formlário !");
    field.value = value;
}
